﻿using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace AsTekMobile
{
    public partial class frmServis2 : Form
    {
        public Service SecilenServis { get; set; }
        public bool GarantiliDegistirebilir { get; set; }


        List<AracSorunBilgi> _sorunlar = new List<AracSorunBilgi>();
        public List<AracKontrolBilgi> Kontroller { get; set; }
        public List<AracSorunBilgi> Sorunlar
        {
            get { return _sorunlar; }
            set
            {
                if (value != null)
                {
                    _sorunlar.AddRange(value.ToArray());
                }
            }
        }
        public int KapamaNedenID { get; set; }
        public string ServisNotu { get; set; }

        public frmServis2()
        {
            InitializeComponent();
            this.Load += new EventHandler(frmServis2_Load);
        }

        void frmServis2_Load(object sender, EventArgs e)
        {
            try
            {
                if (!GarantiliDegistirebilir)
                {
                    mnGarantili.Enabled = false;
                }
                if (Kontroller != null)
                {
                    grdKontroller.DataSource = Kontroller;
                    grdKontroller.Cols[0].Visible = false;
                    grdKontroller.Cols[1].Visible = false;
                    grdKontroller.Cols[2].Visible = false;
                    grdKontroller.Cols[4].Visible = false;
                    grdKontroller.Cols[3].AllowEditing = false;
                    grdKontroller.Cols[5].ComboList = "Evet|Hayır";
                    for (int i = 0; i < grdKontroller.Rows.Count; i++)
                    {
                        if (grdKontroller[i, 4].ToString() == "1")
                            grdKontroller[i, 5] = "Hayır";
                        else
                            grdKontroller[i, 5] = "Evet";
                    }
                }

                if (Sorunlar != null)
                {
                    foreach (var item in _sorunlar)
                    {
                        if (item.Tip == 0)
                            lstCagri.Items.Add(item);

                        if (item.Tip == 1)
                            lstTespit.Items.Add(item);
                    }
                }

                cmbSorun.DataSource = Database.ctor.SorunTanimlari;
                cmbSorun.DisplayMember = "SorunTanimi";
            }
            catch (Exception ex)
            {
                ErrorMgr.Opps(ex);
            }
        }

        private void btnTamam_Click(object sender, EventArgs e)
        {
            try
            {
                for (int i = 1; i < grdKontroller.Rows.Count; i++)
                {
                    if (grdKontroller[i, 5].ToString() == "Evet")
                    {
                        Kontroller[i - 1].Deger = 0;
                    }
                    else
                    {
                        Kontroller[i - 1].Deger = 1;
                    }
                }
                this.DialogResult = DialogResult.OK;
            }
            catch (Exception ex)
            {
                ErrorMgr.Opps(ex);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (Sip.Visible)
            {
                Sip.Visible = false;
            }
            else
            {
                Sip.Visible = true;
            }
        }

        private void btnEkle_Click(object sender, EventArgs e)
        {
            if (cmbSorun.SelectedIndex > -1)
            {
                SorunTanim tanim = ((SorunTanim)cmbSorun.SelectedItem);
                if (_sorunlar.Where(x => x.SorunID == tanim.ID && x.Tip == 1).Count() == 0)
                {
                    AracSorunBilgi bilgi = new AracSorunBilgi() { ID = -1, SorunID = tanim.ID, SorunTanimi = tanim.SorunTanimi, Tip = 1 };
                    _sorunlar.Add(bilgi);
                    lstTespit.Items.Add(bilgi);
                }
            }
        }

        private void btnSil_Click(object sender, EventArgs e)
        {
            if (cmbSorun.SelectedIndex > -1)
            {
                SorunTanim tanim = ((SorunTanim)cmbSorun.SelectedItem);
                if (_sorunlar.Where(x => x.SorunID == tanim.ID && x.Tip == 1).Count() > 0)
                {
                    var item = _sorunlar.Where(x => x.SorunID == tanim.ID).FirstOrDefault();
                    _sorunlar.Remove(item);
                    lstTespit.Items.Remove(item);
                }
            }
        }

        private void mnGarantili_Click(object sender, EventArgs e)
        {
            using (frmUrunDegisimi frm = new frmUrunDegisimi())
            {
                frm.GarantiliDegisim = true;
                frm.Cari = Database.ctor.CariBilgileri2(SecilenServis.FirmaKodu);
                frm.AracKodu = SecilenServis.AracKodu;
                frm.ServisID = SecilenServis.ID;
                if (frm.ShowDialog() == DialogResult.OK)
                {

                }
            }
        }

        private void mnGarantisiz_Click(object sender, EventArgs e)
        {
            using (frmUrunDegisimi frm = new frmUrunDegisimi())
            {
                frm.GarantiliDegisim = false;
                frm.Cari = Database.ctor.CariBilgileri2(SecilenServis.FirmaKodu);
                frm.AracKodu = SecilenServis.AracKodu;
                frm.ServisID = SecilenServis.ID;
                if (frm.ShowDialog() == DialogResult.OK)
                {

                }
            }
        }

        private void mnKapatma_Click(object sender, EventArgs e)
        {
            try
            {
                using (frmServis3 frm = new frmServis3())
                {
                    if (frm.ShowDialog() == DialogResult.OK)
                    {
                        KapamaNedenID = frm.NedenID;
                        ServisNotu = frm.Not;

                        DialogResult dlg = MessageBox.Show("Servisi kaydedip ve durumu kapalı hale getirilsin mi ?", "Uyarı", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                        if (dlg == DialogResult.Yes)
                        {
                            this.DialogResult = DialogResult.OK;
                        }
                        else if (dlg == DialogResult.No)
                        {
                            dlg = MessageBox.Show("Yaptığınız değişiklikler kaybolacaktır ! Eminmisiniz ?", "Uyarı", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                            if (dlg == DialogResult.Yes)
                            {
                                this.DialogResult = DialogResult.Abort;
                                this.Close();
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorMgr.Opps(ex);
            }
        }

        private void btnMenu_Click(object sender, EventArgs e)
        {
            contextMenu1.Show(btnMenu, new Point(0, 0));
        }

        private void menuItem3_Click(object sender, EventArgs e)
        {
            frmArac arc = new frmArac();
            arc.AracKodu = SecilenServis.AracKodu;
            arc.ShowDialog();
        }

        private void menuItem1_Click(object sender, EventArgs e)
        {
            frmHizmetFat hiz = new frmHizmetFat();
            hiz.Cari = Database.ctor.CariBilgileri2(SecilenServis.FirmaKodu);
            hiz.AracKodu = SecilenServis.AracKodu;
            hiz.ServisID = SecilenServis.ID;
            hiz.ShowDialog();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Abort;
            this.Close();
        }

        private void menuItem2_Click(object sender, EventArgs e)
        {
            frmListe frm = new frmListe();
            frm.ServisID = SecilenServis.ID;
            frm.ShowDialog();
        }

        private void menuItem4_Click(object sender, EventArgs e)
        {
            using (frmSevk frm = new frmSevk())
            {
                frm.EvrakTipi = EvrakTipleri.ToptanSatisIrsaliyesi;
                frm.Cari = Database.ctor.CariBilgileri2(SecilenServis.FirmaKodu);
                frm.AracKodu = SecilenServis.AracKodu;
                frm.ServisID = SecilenServis.ID;
                if (frm.ShowDialog() == DialogResult.OK)
                {

                }
            }
        }
    }
}